package com.xyd.Dao;

import com.xyd.Entity.ProductCar;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName: ProductCarDao
 * @Description:
 * @Author 余全盛
 * @Date: 2021/10/15 20:04
 */
public interface ProductCarDao {
    /**
     * @Description: 添加到购物车
     * @Param: [pruductid, productname, price, userid]
     * @return: int
     * @Author: 余全盛
     * @Date: 2021/10/15 20:07
     */
    int addProductToCar(@Param("productid") int pruductid, @Param("productname") String productname, @Param("price") double price, @Param("userid") int userid);

    /**
     * @Description: 获取某个用户购物车中的所有商品
     * @Param: [userid]
     * @return: java.util.List<com.xyd.Entity.ProductCar>
     * @Author: 余全盛
     * @Date: 2021/10/15 20:29
     */
    List<ProductCar> selectAllProductCarByID(int userid);

    /**
     * @Description: 判断用户要加入购物车的商品是否已经存在
     * @Param: [porductid, userid]
     * @return: com.xyd.Entity.ProductCar
     * @Author: 余全盛
     * @Date: 2021/10/16 10:45
     */
    ProductCar selectProductCarByUserIDAndProductId(@Param("productid") int porductid, @Param("userid") int userid);

    /**
     * @Description: 如果用户要加入购物车的商品已经存在，则数量+1
     * @Param: [porductid, userid]
     * @return: int
     * @Author: 余全盛
     * @Date: 2021/10/16 10:50
     */
    int updateProductCarNum(@Param("productid") int porductid, @Param("userid") int userid);

    /**
     * @Description: 更改购物车中商品数量
     * @Param: [productid, num, userid]
     * @return: int
     * @Author: 余全盛
     * @Date: 2021/10/16 14:23
     */
    int updateProductCar(@Param("productid") int productid, @Param("num") int num, @Param("userid") int userid);

    /**
     * @Description: 根据购物车中商品id从购物车中移除
     * @Param: [productid, userid]
     * @return: int
     * @Author:余全盛
     * @Date: 2021/10/16 14:58
     */
    int deleteProductCarByID(@Param("productid") int productid, @Param("userid") int userid);

    /**
     * @Description: 清空购物车
     * @Param: [userid]
     * @return: int
     * @Author: 余全盛
     * @Date: 2021/10/16 15:31
     */
    int deleteAllProductCar(int userid);

    /**
     * @Description: 删除已经结算的购物车中商品
     * @Param: [userid]
     * @return: int
     * @Author: 余全盛
     * @Date: 2021/10/19 10:04
     */
    int deleteAllPayedProductCar(int userid);
}
